home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWABL10.ZIP / BBSLIST.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-10-08  |  16KB  |  1,032 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN011
  30.     Boolean  BOOLEAN012
  31.     Boolean  BOOLEAN017
  32.     Boolean  BOOLEAN018
  33.     Boolean  BOOLEAN019
  34.     Boolean  BOOLEAN020
  35.     Date     DATE001
  36.     Date     DATE002
  37.     String   TSTRING001(11)
  38.     String   TSTRING002(10)
  39.     String   TSTRING003(10)
  40.     String   TSTRING004(30)
  41.     String   TSTRING005(10)
  42.     String   STRING006
  43.     String   STRING007
  44.     String   TSTRING008(6)
  45.     String   STRING009
  46.     String   STRING010
  47.     String   STRING011
  48.     String   STRING012
  49.     String   STRING013
  50.     String   STRING016
  51.     String   STRING018
  52.     String   STRING019
  53.     Byte     BYTE001
  54.     Byte     BYTE002
  55.     Byte     BYTE003
  56.     Byte     BYTE004
  57.     Byte     BYTE005
  58.     Byte     TBYTE006(10)
  59.     Byte     BYTE007
  60.     Byte     BYTE008
  61.     Byte     BYTE009
  62.     Byte     BYTE010
  63.     Byte     BYTE011
  64.     Byte     BYTE012
  65.     Byte     BYTE013
  66.     Byte     BYTE014
  67.     Byte     BYTE015
  68.     Byte     BYTE016
  69.     Byte     BYTE017
  70.     Byte     BYTE018
  71.     Byte     BYTE019
  72.     Int      INT001
  73.     Int      INT002
  74.     Int      INT003
  75.     Declare  Function FUNCTION001() Boolean
  76.     Declare  Procedure PROC001()
  77.     Declare  Procedure PROC002()
  78.     Declare  Procedure PROC003()
  79.     Declare  Procedure PROC004()
  80.     Declare  Procedure PROC005()
  81.     Declare  Procedure PROC006()
  82.     Declare  Procedure PROC007()
  83.     Declare  Procedure PROC008()
  84.     Declare  Procedure PROC009()
  85.     Declare  Procedure PROC010()
  86.     Declare  Procedure PROC011()
  87.     Declare  Procedure PROC012()
  88.     Declare  Procedure PROC013()
  89.     Declare  Procedure PROC014(Var String STRING014, Var Boolean BOOLEAN013)
  90.     Declare  Procedure PROC015(String STRING015, Var Boolean BOOLEAN014)
  91.     Declare  Procedure PROC016(Var String STRING017, Var Boolean BOOLEAN015)
  92.     Declare  Procedure PROC017(Var Boolean BOOLEAN016)
  93.     (null)   001
  94.     (null)   002
  95.  
  96. ;------------------------------------------------------------------------------
  97.  
  98.     PROC001()
  99.     PROC003()
  100.     PROC011()
  101.     End
  102.  
  103. ;------------------------------------------------------------------------------
  104.  
  105.     Procedure PROC001()
  106.  
  107.     TSTRING001(1) = "bbsname,C,22,0"
  108.     TSTRING001(2) = "bbsnum,C,14,0"
  109.     TSTRING001(3) = "bbsnode,C,2,0"
  110.     TSTRING001(4) = "bbssysop,C,22,0"
  111.     TSTRING001(5) = "bbsnup,C,14,0"
  112.     TSTRING001(6) = "bbswarez,C,5,0"
  113.     TSTRING001(7) = "bbsgigs,C,5,0"
  114.     TSTRING001(8) = "bbsaffil,C,60,0"
  115.     TSTRING001(9) = "bbsmisc,C,60,0"
  116.     TSTRING001(10) = "bbsadded,C,20,0"
  117.     TSTRING001(11) = "bbsdate,D,14,0"
  118.     PROC002()
  119.     For BYTE003 = 32 To 126
  120.         If (BYTE003 == 64) Continue
  121.         STRING006 = STRING006 + Chr(BYTE003)
  122.     Next
  123.     STRING006 = STRING006 + Chr(27)
  124.     FOpen 1, PPEPath() + "bbslist.col", 0, 2
  125.     For BYTE003 = 1 To 8
  126.         FGet 1, TSTRING003(BYTE003)
  127.     Next
  128.     FClose 1
  129.     BYTE007 = ReadLine(PPEPath() + "bbslist.cfg", 1)
  130.     For BYTE003 = 1 To 9
  131.         TSTRING004(BYTE003) = ReadLine(PPEPath() + "bbslist.cfg", BYTE003 + 1)
  132.     Next
  133.     TSTRING004(10) = ReadLine(PPEPath() + "bbslist.cfg", 11)
  134.     BYTE004 = S2I(TSTRING004(10), 10)
  135.     TSTRING004(10) = ReadLine(PPEPath() + "bbslist.cfg", 12)
  136.     BYTE005 = S2I(TSTRING004(10), 10)
  137.     For BYTE003 = 1 To 10
  138.         TSTRING005(BYTE003) = ReadLine(PPEPath() + "bbslist.cfg", BYTE003 + 12)
  139.         TBYTE006(BYTE003) = ReadLine(PPEPath() + "bbslist.cfg", BYTE003 + 22)
  140.     Next
  141.     For BYTE003 = 10 To 30
  142.         TSTRING004(BYTE003) = ReadLine(PPEPath() + "bbslist.cfg", BYTE003 + 23)
  143.     Next
  144.     BYTE001 = 1
  145.     BYTE002 = 1
  146.     DOpen 0, PPEPath() + "bbslist", 0
  147.  
  148.     EndProc
  149.  
  150.  
  151. ;------------------------------------------------------------------------------
  152.  
  153.     Procedure PROC003()
  154.  
  155.     String   STRING007
  156.     Boolean  BOOLEAN001
  157.     Boolean  BOOLEAN002
  158.     Byte     BYTE008
  159.     Byte     BYTE009
  160.  
  161.     :LABEL001
  162.     If (BOOLEAN002) Goto LABEL004
  163.     Cls
  164.     DispFile PPEPath() + "bbslist.pcb", 0
  165.     For BYTE008 = 1 To 9
  166.         AnsiPos BYTE004, BYTE008 + BYTE005
  167.         If (BYTE002 == BYTE008) Print TSTRING003(2) , TSTRING004(BYTE008) , TSTRING003(1)
  168.         If (!(BYTE002 == BYTE008)) Print TSTRING003(1) , TSTRING004(BYTE008)
  169.     Next
  170.     BYTE009 = GetX()
  171.     AnsiPos BYTE009, BYTE002 + BYTE005
  172.     :LABEL002
  173.     If (BOOLEAN001) Goto LABEL003
  174.     STRING007 = Upper(Inkey())
  175.     Delay 1
  176.     BOOLEAN001 = 1
  177.     Select Case (STRING007)
  178.         Case Chr(13)
  179.             BOOLEAN001 = 1
  180.         Case "V"
  181.             BYTE001 = BYTE002
  182.             BYTE002 = 1
  183.         Case "B"
  184.             BYTE001 = BYTE002
  185.             BYTE002 = 2
  186.         Case "S"
  187.             BYTE001 = BYTE002
  188.             BYTE002 = 3
  189.         Case "D"
  190.             BYTE001 = BYTE002
  191.             BYTE002 = 4
  192.         Case "A"
  193.             BYTE001 = BYTE002
  194.             BYTE002 = 5
  195.         Case "E"
  196.             BYTE001 = BYTE002
  197.             BYTE002 = 6
  198.         Case "R"
  199.             BYTE001 = BYTE002
  200.             BYTE002 = 7
  201.         Case "P"
  202.             BYTE001 = BYTE002
  203.             BYTE002 = 8
  204.         Case "Q", Chr(27)
  205.             BYTE001 = BYTE002
  206.             BYTE002 = 9
  207.         Case "DOWN", "RIGHT"
  208.             AnsiPos BYTE004, BYTE002 + BYTE005
  209.             Print TSTRING003(1), TSTRING004(BYTE002)
  210.             BYTE001 = BYTE002
  211.             BYTE002 = BYTE002 + 1
  212.             If (BYTE002 > 9) Then
  213.                 BYTE002 = 1
  214.             Endif
  215.             AnsiPos BYTE004, BYTE002 + BYTE005
  216.             Print TSTRING003(2), TSTRING004(BYTE002), TSTRING003(1)
  217.             BOOLEAN001 = 0
  218.         Case "UP", "LEFT"
  219.             AnsiPos BYTE004, BYTE002 + BYTE005
  220.             Print TSTRING003(1), TSTRING004(BYTE002)
  221.             BYTE001 = BYTE002
  222.             BYTE002 = BYTE002 - 1
  223.             If (BYTE002 < 1) Then
  224.                 BYTE002 = 9
  225.             Endif
  226.             AnsiPos BYTE004, BYTE002 + BYTE005
  227.             Print TSTRING003(2), TSTRING004(BYTE002), TSTRING003(1)
  228.             BOOLEAN001 = 0
  229.         Case Else
  230.             BOOLEAN001 = 0
  231.     End Select
  232.     Goto LABEL002
  233.     :LABEL003
  234.     BOOLEAN001 = 0
  235.     AnsiPos BYTE004, BYTE001 + BYTE005
  236.     Print TSTRING003(1), TSTRING004(BYTE001)
  237.     AnsiPos BYTE004, BYTE002 + BYTE005
  238.     Print TSTRING003(2), TSTRING004(BYTE002), TSTRING003(1)
  239.     AnsiPos 1, 19
  240.     Select Case (BYTE002)
  241.         Case 1, 2
  242.             PROC004()
  243.         Case 3
  244.             PROC005()
  245.         Case 4
  246.             PROC006()
  247.         Case 5
  248.             PROC007()
  249.         Case 6
  250.             PROC008()
  251.         Case 7
  252.             PROC009()
  253.         Case 8
  254.             PROC010()
  255.         Case 9
  256.             BOOLEAN002 = 1
  257.     End Select
  258.     Goto LABEL001
  259.     :LABEL004
  260.  
  261.     EndProc
  262.  
  263.  
  264. ;------------------------------------------------------------------------------
  265.  
  266.     Procedure PROC011()
  267.  
  268.     DClose 0
  269.     PrintLn 
  270.     PrintLn "@X08Boards List v1.0 by D", Chr(114), "a", Chr(107), "e (@X09P", Chr(87), "A@X08)."
  271.  
  272.     EndProc
  273.  
  274.  
  275. ;------------------------------------------------------------------------------
  276.  
  277.     Procedure PROC004()
  278.  
  279.     Int      INT002
  280.  
  281.     INT001 = DRecCount(0)
  282.     Cls
  283.     If (BYTE002 == 2) PrintLn TSTRING003(3) , "╓─────────────────────────────────────────────────────────────────────────────╖"
  284.     For INT002 = 1 To INT001
  285.         DGo 0, INT002
  286.         PROC012()
  287.         PROC013()
  288.     Next
  289.     If (BYTE002 == 2) PrintLn TSTRING003(3) , "╙─────────────────────────────────────────────────────────────────────────────╜@X07"
  290.     PrintLn TSTRING003(7), TSTRING004(10), TSTRING003(8), INT001
  291.     Wait
  292.  
  293.     EndProc
  294.  
  295.  
  296. ;------------------------------------------------------------------------------
  297.  
  298.     Procedure PROC005()
  299.  
  300.     Boolean  BOOLEAN003
  301.     Boolean  BOOLEAN004
  302.     Boolean  BOOLEAN005
  303.     String   TSTRING008(6)
  304.     String   STRING009
  305.     Byte     BYTE010
  306.     Byte     BYTE011
  307.  
  308.     INT001 = DRecCount(0)
  309.     BOOLEAN004 = 0
  310.     :LABEL005
  311.     If (BOOLEAN003) Goto LABEL006
  312.     PROC014(STRING009, BOOLEAN003)
  313.     If (BOOLEAN003) Goto LABEL006
  314.     STRING009 = Upper(STRING009)
  315.     For BYTE010 = 1 To INT001
  316.         DGo 0, BYTE010
  317.         DGet 0, "bbsname", TSTRING008(1)
  318.         DGet 0, "bbsnum", TSTRING008(2)
  319.         DGet 0, "bbssysop", TSTRING008(3)
  320.         DGet 0, "bbswarez", TSTRING008(4)
  321.         DGet 0, "bbsaffil", TSTRING008(5)
  322.         DGet 0, "bbsmisc", TSTRING008(6)
  323.         BOOLEAN005 = 0
  324.         For BYTE011 = 1 To 6
  325.             TSTRING008(BYTE011) = Upper(TSTRING008(BYTE011))
  326.             If (InStr(TSTRING008(BYTE011), STRING009) <> 0) BOOLEAN005 = 1
  327.         Next
  328.         If (BOOLEAN005) Then
  329.             PROC012()
  330.             PROC013()
  331.             BOOLEAN004 = 1
  332.         Endif
  333.     Next
  334.     If (BOOLEAN004 == 0) Then
  335.         PrintLn 
  336.         PrintLn TSTRING003(7), TSTRING004(25)
  337.     Endif
  338.     Wait
  339.     BOOLEAN003 = 1
  340.     Goto LABEL005
  341.     :LABEL006
  342.  
  343.     EndProc
  344.  
  345.  
  346. ;------------------------------------------------------------------------------
  347.  
  348.     Procedure PROC006()
  349.  
  350.     Byte     BYTE012
  351.  
  352.     If (Exist(PPEPath() + "bbslist.pwa")) Delete PPEPath() + "bbslist.pwa"
  353.     FCreate 2, PPEPath() + "bbslist.pwa", 2, 0
  354.     FPutLn 2, "[ Boards List v1.0 by Drake (PWA) ]"
  355.     INT001 = DRecCount(0)
  356.     For BYTE012 = 1 To INT001
  357.         DGo 0, BYTE012
  358.         PROC012()
  359.         FPutLn 2, ""
  360.         FPutLn 2, "╓─────────────────────────────────────────────────────────────────────────────╖"
  361.         FPutLn 2, "║ [BOARD]: ", TSTRING002(1), "   [NUM]: ", TSTRING002(2), "   [#RD NODES]: ", TSTRING002(3), "   ║"
  362.         FPutLn 2, "║ [STAFF]: ", TSTRING002(4), "   [NUP]: ", TSTRING002(5), "   [AGE LIMIT]: ", TSTRING002(6), "║"
  363.         FPutLn 2, "║ [ADDED BY]: ", TSTRING002(10), "  [UPDATED]: ", DATE001, "     [#GIGS]: ", TSTRING002(7), "    ║"
  364.         FPutLn 2, "║ [AFFILIATIONS]: ", TSTRING002(8), "║"
  365.         FPutLn 2, "║ [MISC COMMENT]: ", TSTRING002(9), "║"
  366.         FPutLn 2, "╙─────────────────────────────────────────────────────────────────────────────╜"
  367.     Next
  368.     FPutLn TSTRING003(7), TSTRING004(10), TSTRING003(8), INT001
  369.     FClose 2
  370.     Flag PPEPath() + "bbslist.pwa"
  371.     Download ""
  372.     Wait
  373.  
  374.     EndProc
  375.  
  376.  
  377. ;------------------------------------------------------------------------------
  378.  
  379.     Procedure PROC007()
  380.  
  381.     Boolean  BOOLEAN006
  382.     Byte     BYTE013
  383.  
  384.     For BYTE013 = 1 To 9
  385.         TSTRING002(BYTE013) = ""
  386.     Next
  387.     :LABEL007
  388.     If (BOOLEAN006) Goto LABEL009
  389.     PROC014(TSTRING002(1), BOOLEAN006)
  390.     If (BOOLEAN006) Goto LABEL009
  391.     PROC015(TSTRING002(1), BOOLEAN006)
  392.     If (BOOLEAN006) Goto LABEL009
  393.     Cls
  394.     TSTRING002(10) = U_Name()
  395.     DATE001 = Date()
  396.     001 = ToDDate(DATE001)
  397.     PROC013()
  398.     AnsiPos 44, 3
  399.     InputStr "_", TSTRING002(2), TSTRING003(6), 14, STRING006, 2 + 4096
  400.     AnsiPos 74, 3
  401.     InputStr "_", TSTRING002(3), 7, 2, STRING006, 2 + 4096
  402.     AnsiPos 12, 4
  403.     InputStr "_", TSTRING002(4), 7, 22, STRING006, 2 + 4096
  404.     AnsiPos 44, 4
  405.     InputStr "_", TSTRING002(5), 7, 14, STRING006, 2 + 4096
  406.     AnsiPos 74, 4
  407.     InputStr "_", TSTRING002(6), 7, 5, STRING006, 2 + 4096
  408.     AnsiPos 70, 5
  409.     InputStr "_", TSTRING002(7), 7, 5, STRING006, 2 + 4096
  410.     AnsiPos 19, 6
  411.     InputStr "_", TSTRING002(8), 7, 60, STRING006, 2 + 4096
  412.     AnsiPos 19, 7
  413.     InputStr "_", TSTRING002(9), 7, 60, STRING006, 2 + 4096
  414.     AnsiPos 1, 9
  415.     If (FUNCTION001()) Goto LABEL008
  416.     AnsiPos 1, 10
  417.     PrintLn TSTRING003(7), TSTRING004(12)
  418.     Wait
  419.     BOOLEAN006 = 1
  420.     Goto LABEL009
  421.     :LABEL008
  422.     DClose 0
  423.     DOpen 0, PPEPath() + "bbslist", 0
  424.     DNew 0
  425.     DPut 0, "bbsname", TSTRING002(1)
  426.     DPut 0, "bbsnum", TSTRING002(2)
  427.     DPut 0, "bbsnode", TSTRING002(3)
  428.     DPut 0, "bbssysop", TSTRING002(4)
  429.     DPut 0, "bbsnup", TSTRING002(5)
  430.     DPut 0, "bbswarez", TSTRING002(6)
  431.     DPut 0, "bbsgigs", TSTRING002(7)
  432.     DPut 0, "bbsaffil", TSTRING002(8)
  433.     DPut 0, "bbsmisc", TSTRING002(9)
  434.     DPut 0, "bbsadded", TSTRING002(10)
  435.     DPut 0, "bbsdate", 001
  436.     DAdd 0
  437.     INT001 = DRecCount(0)
  438.     PrintLn 
  439.     PrintLn TSTRING003(7), TSTRING004(13)
  440.     Wait
  441.     BOOLEAN006 = 1
  442.     Goto LABEL007
  443.     :LABEL009
  444.  
  445.     EndProc
  446.  
  447.  
  448. ;------------------------------------------------------------------------------
  449.  
  450.     Procedure PROC008()
  451.  
  452.     Boolean  BOOLEAN007
  453.     Boolean  BOOLEAN008
  454.     Boolean  BOOLEAN009
  455.     String   STRING010
  456.     String   STRING011
  457.     Int      INT003
  458.     Byte     BYTE014
  459.  
  460.     BOOLEAN009 = 0
  461.     BOOLEAN008 = 0
  462.     :LABEL010
  463.     If (BOOLEAN009) Goto LABEL016
  464.     PROC014(STRING010, BOOLEAN009)
  465.     If (BOOLEAN009) Goto LABEL016
  466.     PROC016(STRING010, BOOLEAN009)
  467.     If (BOOLEAN009) Goto LABEL016
  468.     PROC012()
  469.     PrintLn 
  470.     PROC013()
  471.     PROC017(BOOLEAN009)
  472.     If (BOOLEAN009) Goto LABEL016
  473.     If (FUNCTION001()) Goto LABEL011
  474.     BOOLEAN009 = 1
  475.     Goto LABEL016
  476.     :LABEL011
  477.     001 = Date()
  478.     INT003 = 1
  479.     :LABEL012
  480.     If (BOOLEAN008) Goto LABEL015
  481.     BOOLEAN007 = 0
  482.     STRING011 = ""
  483.     PROC012()
  484.     Cls
  485.     PROC013()
  486.     PrintLn 
  487.     Print TSTRING003(7), TSTRING004(15)
  488.     For BYTE014 = 1 To 10
  489.         AnsiPos TBYTE006(BYTE014), 12
  490.         Print TSTRING003(1), TSTRING005(BYTE014)
  491.     Next
  492.     AnsiPos TBYTE006(INT003), 12
  493.     Print TSTRING003(2), TSTRING005(INT003), TSTRING003(1)
  494.     :LABEL013
  495.     If (BOOLEAN007) Goto LABEL014
  496.     STRING011 = Upper(Inkey())
  497.     Delay 1
  498.     If (STRING011 == Chr(13)) Then
  499.         BOOLEAN007 = 1
  500.     Endif
  501.     Select Case (STRING011)
  502.         Case "RIGHT", "DOWN"
  503.             AnsiPos TBYTE006(INT003), 12
  504.             Print TSTRING003(1), TSTRING005(INT003)
  505.             INT003 = INT003 + 1
  506.             If (INT003 > 10) Then
  507.                 INT003 = 1
  508.             Endif
  509.             AnsiPos TBYTE006(INT003), 12
  510.             Print TSTRING003(2), TSTRING005(INT003), TSTRING003(1)
  511.         Case "LEFT", "UP"
  512.             AnsiPos TBYTE006(INT003), 12
  513.             Print TSTRING003(1), TSTRING005(INT003)
  514.             INT003 = INT003 - 1
  515.             If (INT003 < 1) Then
  516.                 INT003 = 10
  517.             Endif
  518.             AnsiPos TBYTE006(INT003), 12
  519.             Print TSTRING003(2), TSTRING005(INT003), TSTRING003(1)
  520.     End Select
  521.     Goto LABEL013
  522.     :LABEL014
  523.     Select Case (INT003)
  524.         Case 1
  525.             AnsiPos 12, 3
  526.             Print "                      "
  527.             AnsiPos 12, 3
  528.             InputStr "_", TSTRING002(1), 7, 22, STRING006, 8
  529.             DPut 0, "bbsname", TSTRING002(1)
  530.         Case 2
  531.             AnsiPos 44, 3
  532.             Print "              "
  533.             AnsiPos 44, 3
  534.             InputStr "_", TSTRING002(2), 7, 14, STRING006, 2 + 4096
  535.             DPut 0, "bbsnum", TSTRING002(2)
  536.         Case 3
  537.             AnsiPos 74, 3
  538.             Print "  "
  539.             AnsiPos 74, 3
  540.             InputStr "_", TSTRING002(3), 7, 2, STRING006, 2 + 4096
  541.             DPut 0, "bbsnode", TSTRING002(3)
  542.         Case 4
  543.             AnsiPos 12, 4
  544.             Print "                      "
  545.             AnsiPos 12, 4
  546.             InputStr "_", TSTRING002(4), 7, 22, STRING006, 2 + 4096
  547.             DPut 0, "bbssysop", TSTRING002(4)
  548.         Case 5
  549.             AnsiPos 44, 4
  550.             Print "              "
  551.             AnsiPos 44, 4
  552.             InputStr "_", TSTRING002(5), 7, 14, STRING006, 2 + 4096
  553.             DPut 0, "bbsnup", TSTRING002(5)
  554.         Case 6
  555.             AnsiPos 74, 4
  556.             Print "     "
  557.             AnsiPos 74, 4
  558.             InputStr "_", TSTRING002(6), 7, 5, STRING006, 2 + 4096
  559.             DPut 0, "bbswarez", TSTRING002(6)
  560.         Case 7
  561.             AnsiPos 70, 5
  562.             Print "     "
  563.             AnsiPos 70, 5
  564.             InputStr "_", TSTRING002(7), 7, 5, STRING006, 2 + 4096
  565.             DPut 0, "bbsgigs", TSTRING002(7)
  566.         Case 8
  567.             AnsiPos 19, 6
  568.             Print "                                                            "
  569.             AnsiPos 19, 6
  570.             InputStr "_", TSTRING002(8), 7, 60, STRING006, 2 + 4096
  571.             DPut 0, "bbsaffil", TSTRING002(8)
  572.         Case 9
  573.             AnsiPos 19, 7
  574.             Print "                                                            "
  575.             AnsiPos 19, 7
  576.             InputStr "_", TSTRING002(9), 7, 60, STRING006, 2 + 4096
  577.             DPut 0, "bbsmisc", TSTRING002(9)
  578.         Case 10
  579.             BOOLEAN009 = 1
  580.             BOOLEAN008 = 1
  581.             Goto LABEL015
  582.     End Select
  583.     Goto LABEL012
  584.     :LABEL015
  585.     Goto LABEL010
  586.     :LABEL016
  587.     DATE001 = Date()
  588.     001 = ToDDate(DATE001)
  589.     DPut 0, "bbsdate", 001
  590.  
  591.     EndProc
  592.  
  593.  
  594. ;------------------------------------------------------------------------------
  595.  
  596.     Procedure PROC009()
  597.  
  598.     Boolean  BOOLEAN010
  599.     String   STRING012
  600.  
  601.     :LABEL017
  602.     If (BOOLEAN010) Goto LABEL019
  603.     PROC014(STRING012, BOOLEAN010)
  604.     If (BOOLEAN010) Goto LABEL019
  605.     PROC016(STRING012, BOOLEAN010)
  606.     If (BOOLEAN010) Goto LABEL019
  607.     PROC012()
  608.     PrintLn 
  609.     PROC013()
  610.     PrintLn 
  611.     PROC017(BOOLEAN010)
  612.     If (BOOLEAN010) Goto LABEL019
  613.     If (FUNCTION001()) Goto LABEL018
  614.     BOOLEAN010 = 1
  615.     Goto LABEL019
  616.     :LABEL018
  617.     If (Exist(PPEPath() + "name.ndx")) Delete PPEPath() + "name.ndx"
  618.     DnCreate 0, PPEPath() + "name", "bbsname"
  619.     DnOpen 0, PPEPath() + "name"
  620.     DTag 0, "name"
  621.     DSeek 0, STRING012
  622.     DDelete 0
  623.     DnCloseAll 0
  624.     DPack 0
  625.     INT001 = DRecCount(0)
  626.     PrintLn 
  627.     PrintLn TSTRING003(7), TSTRING004(17)
  628.     Wait
  629.     BOOLEAN010 = 1
  630.     Goto LABEL017
  631.     :LABEL019
  632.  
  633.     EndProc
  634.  
  635.  
  636. ;------------------------------------------------------------------------------
  637.  
  638.     Procedure PROC010()
  639.  
  640.     Boolean  BOOLEAN011
  641.     String   STRING013
  642.     (null)   002
  643.     Date     DATE002
  644.     Byte     BYTE015
  645.  
  646.     INT001 = DRecCount(0)
  647.     BOOLEAN011 = 0
  648.     :LABEL020
  649.     If (BOOLEAN011) Goto LABEL022
  650.     If (CurSec() >= SysopSec()) Goto LABEL021
  651.     PrintLn TSTRING003(7), TSTRING004(26)
  652.     BOOLEAN011 = 1
  653.     Goto LABEL022
  654.     :LABEL021
  655.     Print TSTRING003(7), TSTRING004(27)
  656.     Input "_", DATE002
  657.     PrintLn 
  658.     Print TSTRING003(7), TSTRING004(28)
  659.     Input "_", STRING013
  660.     PrintLn 
  661.     If (Upper(STRING013) <> "YES") Then
  662.         PrintLn TSTRING003(7), TSTRING004(29)
  663.         BOOLEAN011 = 1
  664.         Wait
  665.     Else
  666.         PrintLn TSTRING003(7), TSTRING004(30)
  667.         If (Exist(PPEPath() + "name.ndx")) Delete PPEPath() + "name.ndx"
  668.         DnCreate 0, PPEPath() + "name", "bbsname"
  669.         DnOpen 0, PPEPath() + "name"
  670.         For BYTE015 = 1 To INT001
  671.             DGo 0, BYTE015
  672.             DGet 0, "bbsdate", 002
  673.             If (002 < DATE002) Then
  674.                 DTag 0, "name"
  675.                 DSeek 0, BYTE015
  676.                 DDelete 0
  677.             Endif
  678.         Next
  679.         DnCloseAll 0
  680.         DPack 0
  681.         BOOLEAN011 = 1
  682.         Wait
  683.         Goto LABEL020
  684.     Endif
  685.     :LABEL022
  686.  
  687.     EndProc
  688.  
  689.  
  690. ;------------------------------------------------------------------------------
  691.  
  692.     Procedure PROC002()
  693.  
  694.     Boolean  BOOLEAN012
  695.  
  696.     :LABEL023
  697.     If (BOOLEAN012) Goto LABEL024
  698.     If (Exist(PPEPath() + "bbslist.dbf")) Then
  699.         BOOLEAN012 = 1
  700.     Else
  701.         DCreate 0, PPEPath() + "bbslist", 0, TSTRING001(BOOLEAN000)
  702.         DClose 0
  703.         DOpen 0, PPEPath() + "bbslist", 0
  704.         DNew 0
  705.         DPut 0, "bbsname", "NUCLEAR INSEMINATION"
  706.         DPut 0, "bbsnum", "508-480-8844"
  707.         DPut 0, "bbsnode", "4"
  708.         DPut 0, "bbssysop", "Drake"
  709.         DPut 0, "bbsnup", "None"
  710.         DPut 0, "bbswarez", "0-3"
  711.         DPut 0, "bbsgigs", "6.2"
  712.         DPut 0, "bbsaffil", "Pantera/Drink Or Die/Pinnacle/Rigid/Dragon/Htc/Drift/Vel"
  713.         DPut 0, "bbsmisc", "If you dont trade, then dont call!"
  714.         DPut 0, "bbsadded", "DRAKE"
  715.         DATE001 = Date()
  716.         001 = ToDDate(DATE001)
  717.         DPut 0, "bbsdate", 001
  718.         DAdd 0
  719.         DClose 0
  720.         INT001 = DRecCount(0)
  721.         Goto LABEL023
  722.     Endif
  723.     :LABEL024
  724.  
  725.     EndProc
  726.  
  727.  
  728. ;------------------------------------------------------------------------------
  729.  
  730.     Procedure PROC012()
  731.  
  732.     DGet 0, "bbsname", TSTRING002(1)
  733.     DGet 0, "bbsnum", TSTRING002(2)
  734.     DGet 0, "bbsnode", TSTRING002(3)
  735.     DGet 0, "bbssysop", TSTRING002(4)
  736.     DGet 0, "bbsnup", TSTRING002(5)
  737.     DGet 0, "bbswarez", TSTRING002(6)
  738.     DGet 0, "bbsgigs", TSTRING002(7)
  739.     DGet 0, "bbsaffil", TSTRING002(8)
  740.     DGet 0, "bbsmisc", TSTRING002(9)
  741.     DGet 0, "bbsadded", TSTRING002(10)
  742.     DGet 0, "bbsdate", 001
  743.  
  744.     EndProc
  745.  
  746.  
  747. ;------------------------------------------------------------------------------
  748.  
  749.     Procedure PROC013()
  750.  
  751.     DATE001 = 001
  752.     If (BYTE002 > 2) PrintLn 
  753.     If (BYTE002 <> 2) PrintLn TSTRING003(3) , "╓─────────────────────────────────────────────────────────────────────────────╖"
  754.     PrintLn TSTRING003(3), "║ ", TSTRING003(4), "[", TSTRING003(5), "BOARD", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(1), " @POS:35@  ", TSTRING003(4), "[", TSTRING003(5), "NUM", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(2), " @POS:59@  ", TSTRING003(4), "[", TSTRING003(5), "#RD NODES", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(3), "   @POS:79@", TSTRING003(3), "║"
  755.     If (BYTE002 <> 2) Then
  756.         PrintLn TSTRING003(3), "║ ", TSTRING003(4), "[", TSTRING003(5), "STAFF", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(4), " @POS:35@  ", TSTRING003(4), "[", TSTRING003(5), "NUP", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(5), " @POS:59@  ", TSTRING003(4), "[", TSTRING003(5), "AGE LIMIT", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(6), "@POS:79@", TSTRING003(3), "║"
  757.         PrintLn TSTRING003(3), "║ ", TSTRING003(4), "[", TSTRING003(5), "ADDED BY", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(10), "@POS:35@  ", TSTRING003(4), "[", TSTRING003(5), "UPDATED", TSTRING003(4), "]: ", TSTRING003(6), DATE001, "   @POS:59@  ", TSTRING003(4), "[", TSTRING003(5), "#GIGS", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(7), "    @POS:79@", TSTRING003(3), "║"
  758.         PrintLn TSTRING003(3), "║ ", TSTRING003(4), "[", TSTRING003(5), "AFFILIATIONS", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(8), "@POS:79@", TSTRING003(3), "║"
  759.         PrintLn TSTRING003(3), "║ ", TSTRING003(4), "[", TSTRING003(5), "MISC COMMENT", TSTRING003(4), "]: ", TSTRING003(6), TSTRING002(9), "@POS:79@", TSTRING003(3), "║"
  760.         PrintLn TSTRING003(3), "╙─────────────────────────────────────────────────────────────────────────────╜@X07"
  761.     Endif
  762.  
  763.     EndProc
  764.  
  765.  
  766. ;------------------------------------------------------------------------------
  767.  
  768.     Procedure PROC014(Var String STRING014, Var Boolean BOOLEAN013)
  769.  
  770.     STRING014 = ""
  771.     Print TSTRING003(7)
  772.     InputStr TSTRING004(18), STRING014, 7, 22, STRING006, 8
  773.     If (Len(STRING014) < 2) Then
  774.         PrintLn 
  775.         PrintLn TSTRING003(7), TSTRING004(19)
  776.         Wait
  777.         BOOLEAN013 = 1
  778.     Else
  779.         BOOLEAN013 = 0
  780.     Endif
  781.  
  782.     EndProc
  783.  
  784.  
  785. ;------------------------------------------------------------------------------
  786.  
  787.     Procedure PROC015(String STRING015, Var Boolean BOOLEAN014)
  788.  
  789.     String   STRING016
  790.     Byte     BYTE016
  791.  
  792.     While ((Len(STRING015) < 22)) STRING015 = STRING015 + " "
  793.     INT001 = DRecCount(0)
  794.     BOOLEAN014 = 0
  795.     For BYTE016 = 1 To INT001
  796.         DGo 0, BYTE016
  797.         DGet 0, "bbsname", STRING016
  798.         If (Upper(STRING015) == STRING016) Then
  799.             BOOLEAN014 = 1
  800.             PrintLn 
  801.             PrintLn TSTRING003(8), TSTRING004(20)
  802.             Wait
  803.             TSTRING002(1) = ""
  804.             Break
  805.         Endif
  806.     Next
  807.     For BYTE016 = 2 To 10
  808.         TSTRING002(BYTE016) = ""
  809.     Next
  810.     001 = Date()
  811.  
  812.     EndProc
  813.  
  814.  
  815. ;------------------------------------------------------------------------------
  816.  
  817.     Procedure PROC016(Var String STRING017, Var Boolean BOOLEAN015)
  818.  
  819.     If (Exist(PPEPath() + "name.ndx")) Delete PPEPath() + "name.ndx"
  820.     DnCreate 0, PPEPath() + "name", "bbsname"
  821.     DnOpen 0, PPEPath() + "name"
  822.     DTag 0, "name"
  823.     DSeek 0, STRING017
  824.     If (DSeek(0, STRING017)) Goto LABEL025
  825.     PrintLn 
  826.     PrintLn TSTRING003(7), TSTRING004(21)
  827.     Wait
  828.     BOOLEAN015 = 1
  829.     Goto LABEL026
  830.     :LABEL025
  831.     BOOLEAN015 = 0
  832.     :LABEL026
  833.     DnCloseAll 0
  834.  
  835.     EndProc
  836.  
  837.  
  838. ;------------------------------------------------------------------------------
  839.  
  840.     Procedure PROC017(Var Boolean BOOLEAN016)
  841.  
  842.     Boolean  BOOLEAN017
  843.     String   STRING018
  844.     Byte     BYTE017
  845.  
  846.     STRING018 = String(U_Name())
  847.     If ((CurSec() >= SysopSec()) || (CurSec() >= BYTE007)) Then
  848.         BOOLEAN017 = 1
  849.     Else
  850.         For BYTE017 = 1 To 24
  851.             If (TSTRING002(10) == STRING018) Then
  852.                 BOOLEAN017 = 1
  853.                 Continue
  854.             Endif
  855.             STRING018 = STRING018 + " "
  856.         Next
  857.     Endif
  858.     If (BOOLEAN017) Goto LABEL027
  859.     PrintLn 
  860.     PrintLn TSTRING003(7), TSTRING004(22)
  861.     PrintLn TSTRING003(7), TSTRING004(23)
  862.     PrintLn TSTRING003(7), TSTRING004(24)
  863.     PrintLn 
  864.     Wait
  865.     BOOLEAN016 = 1
  866.     Goto LABEL028
  867.     :LABEL027
  868.     BOOLEAN016 = 0
  869.     :LABEL028
  870.  
  871.     EndProc
  872.  
  873.  
  874. ;------------------------------------------------------------------------------
  875.  
  876.     Function FUNCTION001() Boolean
  877.  
  878.     Boolean  BOOLEAN019
  879.     Boolean  BOOLEAN020
  880.     String   STRING019
  881.     Byte     BYTE018
  882.     Byte     BYTE019
  883.  
  884.     BOOLEAN020 = 0
  885.     BOOLEAN019 = 1
  886.     Print TSTRING003(7), TSTRING004(11)
  887.     BYTE018 = GetX()
  888.     BYTE019 = GetY()
  889.     Print "[Yes] [No]"
  890.     :LABEL029
  891.     If (BOOLEAN020) Goto LABEL030
  892.     If (BOOLEAN019) Then
  893.         AnsiPos BYTE018, BYTE019
  894.         Print TSTRING003(2), "[Yes]", TSTRING003(1), " [No]@X07"
  895.     Else
  896.         AnsiPos BYTE018, BYTE019
  897.         Print TSTRING003(1), "[Yes] ", TSTRING003(2), "[No]@X07"
  898.     Endif
  899.     STRING019 = ""
  900.     While (!(((((STRING019 == "RIGHT") || (STRING019 == "LEFT")) || (STRING019 == "UP")) || (STRING019 == "DOWN")) || (STRING019 == Chr(13)))) STRING019 = Upper(Inkey())
  901.     Delay 1
  902.     Select Case (STRING019)
  903.         Case "RIGHT", "DOWN"
  904.             If (BOOLEAN019) Then
  905.                 BOOLEAN019 = 0
  906.             Else
  907.                 BOOLEAN019 = 1
  908.             Endif
  909.         Case "LEFT", "UP"
  910.             If (BOOLEAN019) Then
  911.                 BOOLEAN019 = 0
  912.             Else
  913.                 BOOLEAN019 = 1
  914.             Endif
  915.         Case Chr(13)
  916.             BOOLEAN020 = 1
  917.     End Select
  918.     Goto LABEL029
  919.     :LABEL030
  920.     FUNCTION001 = BOOLEAN019
  921.  
  922.     EndFunc
  923.  
  924.  
  925. ;------------------------------------------------------------------------------
  926. ;
  927. ; Usage report (before postprocessing)
  928. ;
  929. ; ■ Statements used :
  930. ;
  931. ;    1       End
  932. ;    4       Cls
  933. ;    12      Wait
  934. ;    172     Goto 
  935. ;    166     Let 
  936. ;    31      Print 
  937. ;    40      PrintLn 
  938. ;    109     If 
  939. ;    1       DispFile 
  940. ;    2       Input 
  941. ;    1       FCreate 
  942. ;    1       FOpen 
  943. ;    2       FClose 
  944. ;    1       FGet 
  945. ;    10      FPutLn 
  946. ;    4       Delete 
  947. ;    18      InputStr 
  948. ;    3       Delay 
  949. ;    45      AnsiPos 
  950. ;    1       Flag 
  951. ;    1       Download 
  952. ;    17      EndProc
  953. ;    1       EndFunc
  954. ;    1       DCreate 
  955. ;    3       DOpen 
  956. ;    4       DClose 
  957. ;    2       DPack 
  958. ;    3       DnCreate 
  959. ;    3       DnOpen 
  960. ;    3       DnCloseAll 
  961. ;    2       DNew 
  962. ;    2       DAdd 
  963. ;    5       DGo 
  964. ;    2       DDelete 
  965. ;    3       DTag 
  966. ;    3       DSeek 
  967. ;    19      DGet 
  968. ;    32      DPut 
  969. ;
  970. ;
  971. ; ■ Functions used :
  972. ;
  973. ;    80      +
  974. ;    2       -
  975. ;    57      ==
  976. ;    4       <>
  977. ;    21      <
  978. ;    16      <=
  979. ;    3       >
  980. ;    35      >=
  981. ;    89      !
  982. ;    32      &&
  983. ;    29      ||
  984. ;    2       Len(
  985. ;    7       Upper()
  986. ;    10      Chr()
  987. ;    1       InStr()
  988. ;    5       Date()
  989. ;    2       U_Name()
  990. ;    3       Inkey()
  991. ;    1       String()
  992. ;    30      PPEPath()
  993. ;    7       ReadLine()
  994. ;    2       SysopSec()
  995. ;    3       CurSec()
  996. ;    5       Exist()
  997. ;    2       S2I()
  998. ;    2       GetX()
  999. ;    1       GetY()
  1000. ;    8       DRecCount()
  1001. ;    3       ToDDate()
  1002. ;    1       DSeek()
  1003. ;
  1004. ;------------------------------------------------------------------------------
  1005. ;
  1006. ; Analysis flags : fs
  1007. ;
  1008. ; f - Flag files for download ■ 3
  1009. ;     This may be normal if a PPE needs to send some files, but since
  1010. ;     this statement allows flagging of any file on the hard disk, you
  1011. ;     have to be carefull. Check!
  1012. ;     ■ Search for : FLAG
  1013. ;
  1014. ; s - Sysop level access ■ 5
  1015. ;     Program is reading the sysop access level, this may be normal
  1016. ;     but still it is very suspect. It is the best way to give a user
  1017. ;     all priviledges. Check!
  1018. ;     ■ Search for : SYSOPSEC()
  1019. ;
  1020. ;------------------------------------------------------------------------------
  1021. ;
  1022. ; Postprocessing report
  1023. ;
  1024. ;    16      For/Next
  1025. ;    0       While/EndWhile
  1026. ;    18      If/Then or If/Then/Else
  1027. ;    5       Select Case
  1028. ;
  1029. ;------------------------------------------------------------------------------
  1030. ;                 AEGiS Corp - Break the routines, code against the machines!
  1031. ;------------------------------------------------------------------------------
  1032.